/**
 * @description:
 * @Author: wuzhenbin
 * @CreateTime: 2025/2/16
 */
public class leetcode_169 {
    public static void main(String[] args) {

    }

    public int majorityElement(int[] nums) {
        int candidate = nums[0];  // 初始候选元素
        int count = 1;  // 初始计数器为 1

        // 遍历数组，使用摩尔投票算法
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] == candidate) {
                count++;  // 如果当前元素与候选元素相同，计数器加 1
            } else {
                count--;  // 否则，计数器减 1
            }

            // 如果计数器为 0，更新候选元素
            if (count == 0) {
                candidate = nums[i];
                count = 1;
            }
        }

        return candidate;  // 最后返回候选元素

    }
}
